Re-factoring is a program development process by which the internal structure of an application is modified without changing their external behavior, functionality, or environment in order to improve understandability, reusability, ease of maintenance, agility or runtime performance. Re-factoring and other application modernization techniques often apply to older mainframe source code and other legacy applications in order to extend the legacy code's lifecycle and increase its flexibility. Re-factoring can also be used to optimize runtime performance. Runtime performance optimization is conventionally driven by a performance analysis tool. Typically, this is a largely manual process whose aim is to modify the highest consuming statement as identified by the performance analysis tool. The highest consuming statement, however, may not have a known modification that would improve performance while preserving the same functionality. Resources are wasted by focusing on all high consuming statements, rather than focusing on only statements with a known function-preserving, performance-improving modifications.